Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rZeile As Range
If Target.Row > 1 And Target.Count = 1 Then
With ActiveSheet 'Zeilenbereich festlegen
Set rZeile = .Cells(ActiveCell.Row, 1).Resize(, .UsedRange.Columns.Count)
End With
If Len(WorksheetFunction.Concat(rZeile)) = 0 Then 'wenn Zeile Leer
On Error Resume Next
Application.EnableEvents = False
If rZeile.Offset(-1).SpecialCells(xlCellTypeFormulas).Count > 0 Then 'wenn formeln in zeile oberhalb
Application.CutCopyMode = False
rZeile.Offset(-1).Copy
rZeile.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=True,Transpose:=False
'weil auch Zahlen mit eingefügt werden, werden diese im nächsten Schritt gelöscht
rZeile.SpecialCells(xlCellTypeConstants).ClearContents
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End If
End If
Set rZeile = Nothing
End Sub
|